using System.Diagnostics;

namespace ProjectEuler
{

    /**
 * 
 * Starting with the number 1 and moving to the right in a clockwise 
 * direction a 5 by 5 spiral is formed as follows:

 * 21 22 23 24 25
 * 20  7  8  9 10
 * 19  6  1  2 11
 * 18  5  4  3 12
 * 17 16 15 14 13

 * It can be verified that the sum of the numbers on the diagonals is 101.
 * What is the sum of the numbers on the diagonals in a 1001 by 1001 spiral formed in the same way?
 */
    internal class Problem28
    {
        public void Solve()
        {
            var spiralSum = SpiralSum(1001);
            Debug.WriteLine("spiralSum = " + spiralSum);
        }

        int SpiralSum(int max)
        {
            var elem = 1;
            var sum = elem;
            for (var length = 3; length <= max; length += 2)
            {
                for (var i = 0; i < 4; i++)
                {
                    elem += length - 1;
                    sum += elem;
                    Debug.WriteLine("elem = " + elem + " sum = " + sum);
                }
            }

            return sum;
        }
    }
}